
/*
Trabajar con punteros.
Vamos a encriptar una cadena.
o	Pedir una cadena de caracteres al usuario.
o	Manipular dicha cadena, de tal forma que se le va a aplicar el siguiente sistema
   de encriptación:
o	Si X es el código ASCII del carácter, se hará Y=(X+50) módulo 255.o	Sustituir el
   antiguo carácter (cuyo código ASCII es ) X por el carácter (cuyo código ASCII es) Y.
o	Una vez sustituidos los caracteres, se le dará la vuelta a la cadena (el primer carácter
	pasará a ser el último, el segundo pasará a ser el penúltimo... y el último el primero).
o	Mostrar en pantalla la cadena encriptada.
*/

#include <conio.h>
#include <stdio.h>
#define N 200

/*************************************************************************************/
/*Prototipos*/
void encriptar(char *);
void voltear(char *);
/************************************************************************************/
void encriptar(char *cadena)
{
	char *punt;

	punt=cadena;
	while (*punt!='\0')
	{
		*punt=*punt+50;
		punt++;
	}
}
/**************************************************************************************/
void voltear(char *cadena)
{
 char *princ, *fin;
 char temp;

 princ=cadena;
 fin=cadena;

 /*Pasamos el puntero FIN al final de la cadena*/

 while (*fin!='\0')
  fin++;

 /*Restamos una posici¢n, puesto que nos hemos pasado*/
 fin--;

 /*Intercambiamos los caracteres hasta que "princ" y "fin" se crucen*/
 while (princ<fin)
 {
  temp=*princ;
  *princ=*fin;
  *fin=temp;
  princ++;
  fin--;
 }

}
/**************************************************************************************/
void main(void)
{
	char cadena[N];
 	
   clrscr();
   printf("Introduce la cadena:\n");
   gets(cadena);

   encriptar(cadena);
   voltear(cadena);

   printf("\nLa cadena encriptada es:\n");
   printf("%s",cadena);

}
